package juego;

import vista.VistaAvioneta;
import ar.uba.fi.algo3.titiritero.Dibujable;



public class Avioneta extends Armado{
	
	//Atributos de clase
	private static int miImpacto = 10;
	private static int miPuntajePorDestruccion = 20;
	private static int miResistenciaMaxima = 6;
	private static int miTamanio = 5;
	private static int miVelocidad = 15;
	private static int miTiempoEspera= 1;
	
	//Atributos de instancia
    private int sentido;
    private int contador;
    
    //Metodos
    
  //Constructor recibe Coordenada
    public Avioneta(Coordenada coordenada){
    	super(coordenada, miResistenciaMaxima, miTiempoEspera);
    	this.sentido = 1;
    	this.contador = 0;
    	ArmaLaser unArmaLaser = new ArmaLaser();
    	this.armamento.add(unArmaLaser);
    };
    
    //Constructor recibe 2 enteros
    public Avioneta(int x, int y){
    	super(new Coordenada(x,y), miResistenciaMaxima, miTiempoEspera);
    	this.sentido = 1;
    	this.contador = 0;
    	ArmaLaser unArmaLaser = new ArmaLaser();
    	this.armamento.add(unArmaLaser);
    };

    
    
    //Devuelve el impacto provocado
    @Override
	public Impacto impactoProvocado(){
		return new ImpactoLineal(miImpacto);
	};    
	
	
    //Devuelve el puntaje por haber sido destruido
    public int puntajePorDestruccion(){
    	return miPuntajePorDestruccion;
    };
    
    //Devuelve el tamanio de la avioneta
    @Override 
    public int verTamanio(){
    	return miTamanio;
    };
    
    //Devuelve la velocidad de la avioneta
    public int velocidad(){
    	return miVelocidad;
    };
    
        
    protected void movimientoPropio(){
    	int movimiento;
    	movimiento = (miVelocidad * this.sentido);
    	this.ubicacion.moverEnX(movimiento);
    	this.contador++;
    	if (this.contador >= 10){
    		this.contador = 0;
    		this.sentido = ((-1) * this.sentido);
    	}
    }
    
    @Override
	public Dibujable getDibujable() {
		Dibujable dibujable = new VistaAvioneta();
		dibujable.setPosicionable(this);
		return dibujable;
	};
    

}
